Computing Constructor Forms with Non Terminating Rewrite Programs - Extended version -
نویسندگان
چکیده
In the context of the study of rule-based programming, we focus in this paper on the property of C-reducibility, expressing that every term reduces to a constructor term on at least one of its rewriting derivations. This property implies completeness of function definitions, and enables to stop evaluations of a program on a constructor form, even if the program is not terminating. We propose an inductive procedure proving C-reducibility of rewriting. The rewriting relation on ground terms is simulated through an abstraction mechanism and narrowing. The induction hypothesis allows assuming that terms smaller than the starting terms rewrite into a constructor term. The existence of the induction ordering is checked during the proof process, by ensuring satisfiability of ordering constraints. The proof is constructive, in the sense that the branch leading to a constructor term can be computed from the proof trees establishing C-reducibility for every term.
منابع مشابه
A Constructor-Based Reachability Logic for Rewrite Theories
Reachability logic has been applied to K rewrite-rule-based language definitions as a language-generic logic of programs. To be able to verify not just code but also distributed system designs, a new rewritetheory-generic reachability logic is presented and proved sound for a wide class of rewrite theories. The logic’s automation is increased by means of constructor-based semantic unification, ...
متن کاملTermination of Logic Programs Using Semantic Unification
We introduce a transformation of well-moded logic programs into constructor systems, a subclass of term rewrite systems, such that left-termination of the logic program follows from termination of the derived constructor system. Thereafter, we present a new technique to prove termination of constructor systems. In the technique semantic uni-cation is used. Thus, surprisingly, semantic uniicatio...
متن کاملDependency Pairs for Rewriting with Non-free Constructors
A method based on dependency pairs for showing termination of functional programs on data structures generated by constructors with relations is proposed. A functional program is specified as an equational rewrite system, where the rewrite system specifies the program and the equations express the relations on the constructors that generate the data structures. Unlike previous approaches, relat...
متن کاملRewriting and narrowing for constructor systems with call-time choice semantics
Non-confluent and non-terminating constructor-based term rewriting systems are useful for the purpose of specification and programming. In particular, existing functional logic languages use such kind of rewrite systems to define possibly non-strict non-deterministic functions. The semantics adopted for non-determinism is call-time choice, whose combination with non-strictness is a non trivial ...
متن کاملTermination of Constructor Systems Using Semantic Uniication Termination of Constructor Systems Using Semantic Uniication Termination of Constructor Systems Using Semantic Uniication
We present a new technique to prove termination of term rewrite systems, or more precise, constructor systems (CSs). In earlier work we introduced a transformation of well-moded logic programs into CSs, such that termination of the logic program follows from termination of the obtained CS. The technique to prove termination of CSs described in this paper is in particular suitable for, but not l...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2017